package com.itheima.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

import java.util.List;


//配置请求地址和资源的映射
@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {

    //配置映射地址
    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {

        // localhost:8080/backend/page/login/login.html
        //1. 添加映射
        registry.addResourceHandler("/backend/**").addResourceLocations("classpath:/backend/");
        registry.addResourceHandler("/front/**").addResourceLocations("classpath:/front/");


    }
    //扩展消息转换器
    @Override
    protected void extendMessageConverters(List<HttpMessageConverter<?>> converters) {

        //1. 构建消息转换器对象
        MappingJackson2HttpMessageConverter mc = new MappingJackson2HttpMessageConverter();

        //2. 把我们自己转换功能添加到这个转换器里面。【相当于是再包装一层】
        //设置映射规则
        mc.setObjectMapper(new JacksonObjectMapper());


   /*         3. 把这个新的消息转换器对象，添加到集合里面
                3.1 不能直接认为把这个新的转换器放到集合里面就OK 了。
                    converters.add(mc);
                3.2 在这个converters集合里面有8个转换器，其中MappingJackson2HttpMessageConverter 位于第7位。
                    现在我们也正在构建一个一样的MappingJackson2HttpMessageConverter 消息转换器
                    必须让我们的这个转换器，位于它之前，也就是一定要在 7 的前面。

*/
        //converters.add(mc);
        converters.add( 0 , mc);

    }
}
